using UnityEngine;

public class LevelUp : MonoBehaviour
{
    RectTransform rect; // 用于存储RectTransform组件的引用
    Item[] items;
    void Awake()
    {
        rect = GetComponent<RectTransform>(); // 获取LevelUp对象上的RectTransform组件
        items = GetComponentsInChildren<Item>(true);
    }

    /// <summary>
    /// 显示LevelUp界面
    /// </summary>
    public void Show()
    {
        Next();
        rect.localScale = new Vector3(0.7f, 0.7f, 0.7f); // 将界面的缩放设置为(1, 1, 1)，即正常大小
        GameManager.instance.Stop();
        AudioManager.instance.PlaySfx(AudioManager.Sfx.LevelUp);
        AudioManager.instance.EffectBgm(true);
    }

    /// <summary>
    /// 隐藏LevelUp界面
    /// </summary>
    public void Hide()
    {
        rect.localScale = Vector3.zero; // 将界面的缩放设置为(0, 0, 0)，即隐藏界面
        GameManager.instance.Resume();
        AudioManager.instance.PlaySfx(AudioManager.Sfx.Select);
        AudioManager.instance.EffectBgm(false);
    }

    public void Select(int index)
    {
        items[index].OnClick();
    }

    void Next()
    {
        // 1. 隐藏所有物品
        foreach (Item item in items)
        {
            item.gameObject.SetActive(false);
        }

        // 2. 随机选择三个不同的索引
        int[] ran = new int[3];
        while (true)
        {
            ran[0] = Random.Range(0, items.Length);
            ran[1] = Random.Range(0, items.Length);
            ran[2] = Random.Range(0, items.Length);

            if (ran[0] != ran[1] && ran[1] != ran[2] && ran[0] != ran[2])
            {
                break;
            }
        }

        // 3. 根据随机索引显示对应的物品
        for (int index = 0; index < ran.Length; index++)
        {
            Item ranItem = items[ran[index]];

            if (ranItem.level == ranItem.data.damages.Length)
            {
                items[4].gameObject.SetActive(true);
            }
            else
            {
                ranItem.gameObject.SetActive(true);
            }
        }
    }

}
